// 格式化数据格式
import { IMenuProps } from "../router/menu";

/*
    通过‘-’截取的话
    长度为2位的是一级菜单
    长度2位以上的是二级菜单
*/ 

export const formatArr = (arr:string[]) =>{
    const result = arr.reduce((_arr,item) => [..._arr,...sliceStr(item)],['0-0'])
    return [...new Set(result)].sort()
}
const sliceStr = (str:string) => {
    if (str.split('-').length > 2) {
        return str.split('-').reduce((_arr, item): any => {
            if (!Array.isArray(_arr)) return [`${_arr}-${item}`]
            return [`${_arr[0]}-${item}`, ..._arr]
        })
    }
    return [str]
}

export function getSiderBarMenu(menus:IMenuProps[],checkedKeys:string[]) {
    let arr:IMenuProps[] = []
    checkedKeys.forEach(item =>{
        menus.forEach((value:any) => {
            if(value.keyid === item) {
                arr.push({...value})
            }
        })
    })
    arr.forEach(item => {
        if(item.children){
            let newArr = getSiderBarMenu(item.children,checkedKeys)
            item.children = newArr
        }
    })
    return arr
}

// 判断 当前请求的地址是不是在用户允许权限中
export function isContainMenus(menus:IMenuProps[],pathname:string) {
    let bool = menus.some(item => {
        if(item.children){
            if(item.key === pathname){
                return true
            }else{
                return item.children.some(ite => ite.key === pathname)
            }
        }else{
            return item.key === pathname
        }
    })  
    return bool
}